// 阿里智能信息

// 示例树状结构
const tree = {
  name: '中国',
  children: [
    {
      name: '北京市',
      children: [
        {
          name: '东城区',
          children: [],
        },
        {
          name: '西城区',
          children: [],
        },
      ],
    },
    {
      name: '上海市',
      children: [
        {
          name: '黄浦区',
          children: [],
        },
        {
          name: '徐汇区',
          children: [],
        },
      ],
    },
    {
      name: '广州',
      children: [
        {
          name: '天河',
          children: [],
        },
        {
          name: '黄埔',
          children: [],
        },
      ],
    },
  ],
};

// 递归查找 name  返回boolean
// console.log(dfs(tree,'天河'));
// function dfs(tree, name) {
//   if (tree.name === name) {
//     return true;
//   }
//   let node = tree.children;
//   if (node.length) {
//     for (let child of node) {
//       console.log(child);
//       if (dfs(child, name)) {
//         return true;
//       }
//     }
//   }
//   return false;
// }

console.log(levelOrderSearch(tree,'天河'));
function levelOrderSearch(tree, targetName) {
  if (!tree) {
    return false; // 如果树为空，返回null
  }
  const queue = [tree]; // 使用队列来存储待遍历的节点
  while (queue.length > 0) {
    const currentNode = queue.shift(); // 取出队列中的第一个节点
    // 检查当前节点的名字是否与目标名字匹配
    if (currentNode.name === targetName) {
      return true; // 如果匹配，返回当前节点
    }
    // 将当前节点的子节点加入队列
    for (const child of currentNode.children) {
      queue.push(child);
    }
  }
  return false; // 如果没有找到目标节点，返回null
}
